﻿#pragma once

//头文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <math.h>

#define ROW 3//记录行
#define COL 3//记录列

//函数声明

//封面函数
void cover();

//打印猪头
void pig();

//选择菜单
void menu();

//游戏函数
void game();

//初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col);

//打印棋盘
void DisplayBoard(char board[ROW][COL], int row, int col);

//玩家下棋
void PlayerMove(char board[ROW][COL], int row, int col);

//简单电脑下棋
void ComputerMove_easy(char board[ROW][COL], int row, int col);

void ComputerMove_easy_2(char board[ROW][COL], int row, int col);

//普通人机下棋
void ComputerMove_common(char board[ROW][COL], int row, int col);

//困难人机，快输时，有二分之一几率下三个子，平时有二分之一的几率下两个子
void ComputerMove_hell(char board[ROW][COL], int row, int col);

//判断输赢
char IsWin(char board[ROW][COL], int row, int col);

//判断是否继续游戏
int IfContinue();

//电脑自动判断本回合是否会赢，会赢返回1且直接下，不会返回0
int computer_will_win(char board[ROW][COL], int row, int col);

//电脑判断人是否会赢，会赢就赌棋，返回1，不会赢就不赌，返回0
int people_will_win(char board[ROW][COL], int row, int col);

//选择难度 简单返回1，困难返回2，十分难返回3
int difficulty();

//easy简单人机下棋
void easy();

//普通人机，不会输
void common();

//困难人机下棋
void hell();

//爱心
void heart();

//把电脑的棋子变成自己的棋子
void boom(char board[ROW][COL], int row, int col);

//清空缓冲区
void clean();

//关机恶搞程序
void over();

//判断棋盘有没有满，满了返回0，没满返回1
int full(char board[ROW][COL], int row, int col);

//设置颜色
void color(int x);//设置字体颜色
//0 = 黑色                 8 = 灰色　　
//
//1 = 蓝色                 9 = 淡蓝色
//
//2 = 绿色                10 = 淡绿色
//
//3 = 湖蓝色             11 = 淡浅绿色
//
//4 = 红色                12 = 淡红色
//
//5 = 紫色                13 = 淡紫色
//
//6 = 黄色                14 = 淡黄色
//
//7 = 白色                15 = 亮白色
